package main

import (
	"fmt"
	"sync"
)

var wg = sync.WaitGroup{}

func main() {
	var msg chan int
	msg = make(chan int)
	wg.Add(1)
	go func(msg chan int) {
		defer wg.Done()
		fmt.Println(<-msg)
	}(msg)
	msg <- 1
	wg.Wait()
	//channel是多个goroutine之间线程安全   使用锁？
	//如果你是没有缓冲的channel在没有启动一个消费者之前你放数据就会报错  没有缓冲区
	//如果有缓冲区则可以放数据 不用取  但是要注意缓冲区范围
	//data := <-msg
	//fmt.Println(data)
}
